#include <stdio.h>
#include "duracion.h"
#include "genero.h"
#include "musica.h"
#include "album.h"
#include "artista.h"
#include <stdlib.h>

void agregar_artista();
void agregar_album();
TMusica  agregar_musica(int cant) ;
void imprimir_menu();
void imprimir_lista_artista();
void pausa();

TAlbum *albumes;
TMusica *temas;
int x =0 ;
	

TArtista artista;
TAlbum album;

TArtista artista_primer_nodo;
TAlbum album_primer_nodo;

int main (void){
    artista = artista_crear("ficticio", NULL);
    artista_primer_nodo = artista;
    artista->siguiente = NULL;
    
    album = album_crear("ficticio", NULL, 0);
    album_primer_nodo = album;
    imprimir_menu();
}



void imprimir_menu() {
    system("clear");
    printf("1- agregar artista \n");
    printf("2- agregar album \n");
    printf("3- Imprimir lista de artistas \n");
    printf("4- salir del sistema \n");
int opcion;
scanf("%d", &opcion);
switch (opcion){
    case 1: agregar_artista(); break;
    case 2: agregar_album(); break;
    case 3: imprimir_lista_artista(); break;
    case 4: exit(0); break;
    default: printf("ingrese opcion correcta \n");
    
    }
    if (opcion >= 1 && opcion <=5)
       imprimir_menu();
}


void agregar_artista(){
	int seguir=1;
	while(seguir){
            char nombre[200];
	    printf("ingrese el nombre del artista: ");
	    scanf("%s", nombre);
            TArtista art = artista_crear(nombre, NULL);
            artista->siguiente = art;
            artista = artista->siguiente;
            artista->siguiente = NULL;
            printf("seguir cargando? si=1 no=0\n");
	    scanf("%d", &seguir);
	}
}

void imprimir_lista_artista() {
    printf("LISTA DE ARTISTAS\n");
    
    TArtista art = artista_primer_nodo->siguiente;
    int counter = 1;
    while( art != NULL){
        printf("%d- %s\n", counter++, art->nombre);
        art = art->siguiente;
    } 
    pausa();
}

void agregar_album(){
int seguir=1;
	while(seguir){
            char nombre[200];
	    int cant;
	    printf("ingrese el nombre del album: ");
	    scanf("%s", nombre);
	    printf("ingrese cuantos temas tiene el album: ");
	    scanf("%d", &cant);
            TAlbum alb = album_crear(nombre, agregar_musica(cant), cant);
 
            //album->siguiente = alb;
            //album = alb->siguiente;
            //album->siguiente = NULL;
            printf("seguir cargando? si=1 no=0\n");
	    scanf("%d", &seguir);
	}
}

TMusica agregar_musica(int cant) {
     TGenero g = genero_crear("rock", "rock and roll");
     TDuracion d = duracion_crear(0, 2, 30);
     TMusica musica = malloc(sizeof(Musica) * cant);
     int i;	
     for (i = 0; i < cant; i++) {
         char nombre[100];
         printf("Ingrese el nombre de la musica: ");
         scanf("%s", nombre);
         musica_set_nombre(musica, nombre);
         musica = musica + 1;
     }

     musica = musica - cant;
     for (i = 0; i < cant; i++) {
         printf("%d- %s\n", i + 1, musica->nombre);
         musica = musica + 1;
     }
    musica = musica - cant;
    return musica;
}

void pausa() {
   printf("Presione ENTER continuar...");
   char c;
   scanf("%c", &c);
  scanf("%c", &c);
}
/*
int strlen2(char *cadena){

int tam=0;
while(*cadena !='\0'){

tam++;

cadena= cadena + 1;

 }
return tam;

}


int concatenar(char *s1, char *s2){
   char *tmp = s1;
    s1 = malloc(sizeof(char) * (strlen2(s1) + strlen2(s2)));
   int i =0;
   while(*tmp != '\0') {
      *s1 = *tmp;
       s1 = s1 +1;
       tmp = tmp +1;
       i++;
   }
   while(*s2 != '\0') {
       *s1 = *s2;
        s1 = s1 + 1;
        s2 = s2 +1;
        i++;
   }
  printf( "concatenar: %s\n\n", s1);
}*/
